Enterprise application management is one of the most challenging tasks for Information Technology (IT) departments of large organizations today. A typical IT department needs to manage large numbers of user devices, which can be spread over wide geographies, and contain a diversity of software applications and operating systems. In turn, the IT department needs to be able to carry out various tasks on the client devices, such as installing applications, performing back-ups, delivering upgrades, restoring devices, migrating users between computing devices and between different Operating Systems (OS), and fixing bugs or problems; all of which needs to be done quickly, efficiently, and with minimal interruption to users of the client devices on the network. Increasing complexity of software programs, frequent software updates, and limited resources compounds these difficulties.
Conventionally, applications are installed on a device by using an application installer, such as the Microsoft Installer file (MSI) or other such tool. The application installer typically contains a wizard to guide a user through a manual installation process, where the user specifies various configuration options for the application installation. This manual installation process is not always optimal within the context of a large enterprise. For example, when an IT department of a large organization wishes to distribute a new application to thousands of users, requiring each user to manually walk through the installation process can be quite burdensome and may often cause inconsistencies. Some installers are able to run in a non-interactive or “silent” mode, where the application is installed without user interaction, however, such silent installations still typically require some form of a configuration file, which specifies all of the parameters and configuration details of the application installation. Creating such configuration files and “application packages” that include the installer with the configuration file(s) that can be used across all the various devices in the enterprise is not a trivial task.
Many enterprises have adopted the use of electronic software distribution (ESD) systems and similar application management and delivery systems to aid IT departments. Such systems are intended to automate the distribution and management of applications on endpoint devices, thereby reducing or in some cases even eliminating direct involvement by IT personnel. The ESD system can automate tasks such as installing, upgrading, or fixing applications; however, they still require the creation of silent application packages, and the process of creating such packages can be tedious, complex, and labor intensive work. For example, a typical enterprise may utilize hundreds or even thousands of different applications, and manually creating application installation packages for all of them can take months of work. Further, the work of packaging applications may need to be repeated each time a new version of an operating system (OS) is released, making it the bottleneck for operating system migration projects. The long time needed to create the application packages is also a barrier for IT organizations that wish to deploy a new ESD system. A more efficient approach is desirable for managing applications and application packages in enterprise network environments.